var lazy = {

    /**
     * @Author  展望
     * @param  {*}  obj
     * @returns {*} obj
     * @file  将一个json对象中的空值全部去除
     */

    //删除json对象中空值
    deleteEmptyProperty(obj) {
        var object = obj;
        for (var i in object) {
            var value = object[i];
            if (typeof value === 'object') {
                if (Array.isArray(value)) {
                    if (value.length == 0) {
                        delete object[i];
                        continue;
                    }
                }
                this.deleteEmptyProperty(value);
            } else {
                if (value === '' || value === null || value === undefined) {
                    delete object[i];
                }
            }
        }
        return object;
    },

    /**
     * @Author 展望
     * @param {*} arr数组 
     * @return {*} target数组
     * @file //去掉空值，合并多个json对象
     */
    selectsome(arr, target) {
        var array = []
        for (var i = 0; i < arr.length; i++) {
            var b = this.deleteEmptyProperty(arr[i])
            array.push(b)
        }
        target = array;
        return target
    },


    /**
     * @Author 展望
     * @param {*} data 
     * @return {*} data
     * @file 将传入的序列化url编码以json对象格式返回
     */
    formToJson(data) {
        data = data.replace(/&/g, "\",\"");
        data = data.replace(/=/g, "\":\"");
        data = "{\"" + data + "\"}";
        data = JSON.parse(data);
        return data;
    },

    /**
     * @Author 展望
     * @param {*} id
     * @return {*} data
     * @file  表单序列化返回一个json对象  ~ 使用此方法，请导入jquery，如果传输的【form】id被包裹在一个jquery对象里面，则请以字符串形式（即"id"）传入
     */

    foemserialization(id) {
        var data = decodeURIComponent($("#" + id + "").serialize(), true);
        data = this.formToJson(data);
        return data;
    },

    /**
     * @Author 展望
     * @param {*} jsonStr 
     * @file 将json对象按照name回填回表单
     *@explain  传入的是一个json字符串，如果传入的是个对象，要么你自己转个对象，要么把方法第一句改成var obj = jsonStr;
     */
    formBackFill(jsonStr) {
        var obj = jsonStr;
        var key, value, tagName, type, arr;
        for (x in obj) {
            key = x;
            value = obj[x];
            $("[name='" + key + "'],[name='" + key + "[]']").each(function () {
                tagName = $(this)[0].tagName;
                type = $(this).attr('type');
                if (tagName == 'INPUT') {
                    if (type == 'radio') {
                        $(this).attr('checked', $(this).val() == value);
                    } else if (type == 'checkbox') {
                        if (value instanceof Array) {
                            arr = value;
                        } else {
                            arr = value.split(',');
                        }
                        for (var i = 0; i < arr.length; i++) {
                            if ($(this).val() == arr[i]) {
                                $(this).attr('checked', true);
                                break;
                            }
                        }
                    } else {
                        if (typeof value == "object") {
                            var newobj = "";
                            $.each(value, function (index, element) {
                                newobj = newobj + element + ";"
                            })
                            newobj = newobj.substr(0, newobj.length - 1);
                            $(this).val(newobj);
                        } else {
                            $(this).val(value);
                        }
                    }
                } else if (tagName == 'SELECT' || tagName == 'TEXTAREA') {
                    $(this).val(value);
                }
            });
        }
    },

    /**
     * @Author 展望
     * @param {*} filename 请以字符串形式传入你需要的文件下载格式例如"data.txt"
     * @param {*} text 请传入一个json对象
     * @return {*} 下载成功
     * @file 以json字符串的形式下载一个json对象到本地文件
     */
    jsondownload(filename, text) {
        text = JSON.stringify(text)
        var pom = document.createElement('a');
        pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
        pom.setAttribute('download', filename);
        if (document.createEvent) {
            var event = document.createEvent('MouseEvents');
            event.initEvent('click', true, true);
            pom.dispatchEvent(event);
        } else {
            pom.click();
        }
        return console.log("下载成功");
    },
    /**
     * @Author 展望
     * @param {*} data 传入一个连续的日期字符串，eg："2020-09-14 至 2020-09-24"
     * @param {*} param 传入日期字符串中的分割符，即上述data中的"至""
     * @return {*} dataarr 
     * @file 分割一个连续的日期，以一个数组的形式返回。
     */
    splitdata(data, param) {
        var dataarr = [];
        data = data.replace(/ /g, "");
        data = data.split("" + param + "");
        for (var i = 0; i < data.length; i++) {
            var DateStart = data[0];
            var DateEnd = data[1];
            dataarr.DateStart = DateStart
            dataarr.DateEnd = DateEnd
        }
        return dataarr;
    },


    /**
     * @Author :展望
     * @param : string
     * @return :  在对应页面接受这个string
     * @way : 通过网页跳转方式传递一个string
     * @explain  href: "page/abaaba/abaaba/abaaba.html?id=" + iid + "",
     */

    getQueryString(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        var r = window.location.search.substr(1).match(reg);
        if (r !== null)
            return unescape(r[2]);
        return null;
    }


}



